﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BusinessEntities.IniciativaVecinal;

namespace DataAccess.IniciativaLaboral
{
    public class IniciativaLaboralRepository : IIniciativaVecinalRepository , IDisposable
    {

        private SICMAContext context;

        public IniciativaLaboralRepository(SICMAContext context)
        {
            this.context = context; 
        }

        public int ObtenerUltimoId()
        {
            var obj = context.tbIniciativaVecinals.Max(v => v.idVecino);

            int _lastId = obj == null ? 1 : ( obj.Value + 1 );

            return _lastId;
        }

        public IEnumerable<tbIniciativaVecinal> BuscarIVPorFecha(int UsuarioId, DateTime FechaInicio, DateTime FechaFin)
        {
            
            return context.tbIniciativaVecinals.Where( iv => iv.FechaRegistro >= FechaInicio && iv.FechaRegistro <= FechaFin );
        }
        
      
        public IEnumerable<tbIniciativaVecinal> BuscarPorEstado( int Estado )
        {
            return context.tbIniciativaVecinals.ToList();
        }



        public void RegistrarIV(tbIniciativaVecinal iv)
        {
            context.tbIniciativaVecinals.Add(iv);
        }

        public void ActualizarIV(tbIniciativaVecinal iv)
        {
            context.Entry(iv).State = EntityState.Modified;
        }

        public void Save()
        {
            context.SaveChanges();
        }

        private bool disposed = false;

        protected virtual void Dispose(bool disposing)  
        {
            if (!this.disposed)
            {
                if (disposing)
                {
                    context.Dispose();
                }
            }
            this.disposed = true;
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
    }
}
